相当多的心理学、管理学和社会科学研究(当然也包括医学,神经科学等其他学科)不仅仅关注群体,同时还希望做更为细致的分析,把群体划分为亚类型--同一个亚类型之中的个体更为相似,而各个亚类型之间却有显著的区别。这样做的好处当然是全方面的--毕竟我们知道世界上有一千个哈姆雷特,人和人之间的差异太大了。一方面,当我们做出某个论断的时候(比如喜欢请客吃饭的男生都是渣男)能够不再集中开火,伤及无辜(喜欢请客吃饭的男生中有渣男这个亚类型,也有暖男这个亚类型);另一方面,当我们必须要做出干预和诊断的时候(比如面对情绪低沉的患者),我们也能够对症下药,不至于张冠李戴(比如压力山大导致的情绪低落需要疏导,而严重抑郁症患者表现的情绪低落则必须吃药了)。正是因为划分亚类型的重要性,研究中经常会出现类似潜在类别分析(Latent Class Analysis)或者潜在剖面分析(Latent Profile Analysis)这样的名词(当然更复杂的变种包括潜变量增长混合模型;Latent Growth Mixture Models)。从一个更大的角度分析,这些模型都基于潜变量模型的大框架,彼此之间以及与其他重要心理统计方法之间的关系如下图所示。虽然这样的高层次理解对于实际研究可能贡献有限,但是知道所有这些名字炫酷的模型多多少少都非常类似,一方面当然有助于建立快乐和自信,另一方面也很显然能够帮助自己更好地选择模型。我们今天的文章重点涉及的是潜变量是分类变量的情况。本文的主题有点出乎意料(Bazinga!),我们不会介绍这两个模型以及具体在实际研究中如何操作(我们这么良心的公众号当然早就有所涉及了),我们想要具体讲讲研究中具体的注意事项,以及其他相关的、延伸的模型。一如既往地,我们当然会推荐统计软件来帮助你解决实际中的问题——读完本文后,说不定一个全新的令人激动的研究想法就跃然脑中了。在绝大多数情况下,何时该用潜在剖面分析及潜在类别分析应该是相对清晰的。当进行聚类分析依据的变量都是分类变量的时候(注意只有几点的Likert量表也应该被视作分类变量),我们需要进行潜在类别分析;而当聚类分析依据的是连续变量的时候,我们需要进行潜在剖面分析。然而,当我们同时有分类和连续变量(混合类型数据集)的时候,我们需要怎么办呢?把视野放宽,暂时脱离这些有着全面模型假设的混合模型,去往令人神往的其他聚类分析的乐园--哇,这里居然也有这么多有意思的方法。除了上述混合模型之外,最著名的模型应当是K-means了:这是一种特别针对连续变量的分类方法,目标是寻找到几个“中心点”(中心点可以不是样本中的数据),而每个样本都将会被分配到离自己最近的中心点所代表的聚类中。下图是个很好的例子,样本中所有点被非常清晰地分成了红蓝绿三个类别。很遗憾,K-means并不足够处理针对混合类型数据集的聚类分析。这时候它的近亲出现了,k-medoids;在这一方法下,“中心点”不再能够是样本之外的点,而被局限为样本之中“最具有代表性的点”(当然,和上述它的近亲一样,这些“中心点”和“最有代表性的点”都是数据驱动的结果,而不是自己(根据爱好)任意选定的),相对应的,分类的依据不再是距离中心点的距离,而是和“最具代表性的点”的相似度。限于篇幅,本文不再对这一方法做更详细的介绍(还有其他精彩内容),有兴趣的读者可以参考Kohn, Steinley& Brusco (2010)(发表在顶刊哦)。在统计软件R的“cluster”包里面有专门的“pam”程序可以一步进行分析。还有一个k-means的近亲非常值得介绍,那就是k-median,以聚类中的中位数(而不是平均数)作为“中心点”。不要看这里的变化是聚类分析发展的一小步,却是数据处理中的一大步——在Brusco, Shireman& Steinley (2017)中,作者用非常详细的模拟数据证明了这一方法在处理二分变量所形成的数据集中有着最好的表现,当然超过了孪生兄弟k-means,甚至还超过了被屡屡神话的潜在类别分析。一句话总结,有很多炫酷的聚类分析方法;k-means保证了你的速度,k-medoids特别适合混合类型的数据,k-median是处理二分变量数据的最佳方法,总有一款适合你!在使用混合模型的过程中,有一些研究者往往忽视的问题事实上确实无比重要的。首先,如何确定聚类的数量?两篇社会科学领域正在撰写的文章(抱歉因为是最新的结果所以无法引用)强调了(1)使用不同的模型拟合指数(例如AIC 和 BIC)会导致完全不同的结果,(2)当样本量较小的时候(n<300),最为推荐的方法是经过修正的AIC(AICc, Hurvich,& Tsai, 1993);而当样本量较大的时候,最为推荐的方式却是BIC(Schwarz, 1978)。其次,既然混合模型对误差的分布有着一定的假设,那么它具体的实施步骤在理想情况下应该是怎样的呢?Vermunt (2011)在他的回应(非常推荐他和Steinley在三篇系列文章中针对混合模型和k-means的讨论,极其有意思和具有启发性)中,建议先假设在确定类别的情况下,变量之间的局部独立性成立;如果实证数据不能满足这一个假设,那么再增加变量之间的局部相关或者选择增加聚类的数量。这样做的最重要的目的,就是能够避免对于当前数据的过度拟合,从而错失发现真模型。
最后,一个与之前的论述有些相关与此同时非常重要的点是研究者们必须了解通过混合模型所得到的聚类未必是稳定的——在很多情况下,增加或者减少某几个变量能够带来完全不同的结果;与此同时增加被试数量很有可能使得你能够多发现聚类的数量。换句话说,你当然需要对自己的结果有信心,但是更重要的是混合模型是一个高度数据驱动的模型,在没有特别好的先验理论的前提下,在没有其他相关研究交叉验证的情况下,一定要特别小心不能过度推广得到的实验结果。出于习惯,研究者往往会收集很多变量——犹如大海捞针,我们总是习惯于错杀一万而不放过一个;而这带来的结果,就是研究中往往会存在多余的噪音变量——这些变量并不会对实际的聚类产生任何实质上的影响。在这种情况下,用一些“高端”方法通过统计手段自动筛选出有用的变量既显得高级(从而增大你文章录用的可能性),更重要的是往往能带来更为准确的聚类分析结果。本文显然无法完成对于这些方法的完全讲述,但是我们在这里推荐几个非常有用但是又易操作的R包:对于潜在剖面分析,可以使用clustervarsel和SelvarMix;而对于潜在类别分析,可以使用reglca。就是这些!希望读完此文的你,可以成为聚类分析中的王者。不然的话,随时欢迎你加入我们线下的读者群“高级心理统计联盟”提问交流,或者直接在文末和公众号内与作者交流。我们也非常欢迎对我们选题的建议!~~~~~~~~~~~
我们长期致力于统计方法及研究思路的推广,已经推送文章涉及Mplus具体操作,元分析,R,科研写作与发表~